package com.snail.jj.androiddemos.javabasic;

import android.os.Bundle;
import android.os.PersistableBundle;
import android.support.annotation.Nullable;

import com.snail.jj.androiddemos.bases.BaseActivity;

/**
 * Created by snail on 2017/8/11.
 *
 * Android提供了四种常用的操作多线程的方式，分别是：
 * 1、Handler + Thread
 * 2、AsyncTask
 * 3、ThreadPoolExecutor
 * 4、IntentService
 *
 */

public class ThreadActivity extends BaseActivity {

    @Override
    public void onCreate(@Nullable Bundle savedInstanceState, @Nullable PersistableBundle persistentState) {
        super.onCreate(savedInstanceState, persistentState);
    }


    /**
     * Android主线程包含一个消息队列(MessageQueue)，该消息队列里面可以存入一系列的Message或Runnable对象。通过一个Handler
     * 你可以往这个消息队列发送Message或者Runnable对象，并且处理这些对象。每次你新创建一个Handle对象，它会绑定于创建它的线程
     * (UI线程)以及该线程的消息队列，从这时起，这个handler就会开始把Message或Runnable对象传递到消息队列中，并在它们出队列的时候执行它们
     *
     * Handler可以把一个Message对象或者Runnable对象压入到消息队列中，进而在UI线程中获取Message或者执行Runnable对象，Handler把
     * 压入消息队列有两种方式，Post和sendMessage
     *
     * Post方式：
     *  Post允许把一个Runnable对象入队到消息队列中。它的方法有：
     *      post(Runnable)/postAtTime(Runnable,long)/postDelayed(Runnable,long)
     *
     *  对于Handler的post方式来说，它会传递一个Runnable对象到消息队列中，在这个Runnable对象中，重写run()方法.一般在这个run()方法中
     *  写入需要在UI线程上的操作
     *
     */
    public void handlerThreadAction() {

    }

}
